import os
from PIL import Image

def validate_image_file(file_path):
    """
    验证图片文件是否有效
    :param file_path: 图片文件路径
    :return: (bool, str) 是否有效, 错误信息
    """
    if not os.path.exists(file_path):
        return False, "文件不存在"
    
    if not os.path.isfile(file_path):
        return False, "路径不是文件"
    
    try:
        with Image.open(file_path) as img:
            img.verify()
        return True, None
    except Exception as e:
        return False, f"无效的图片文件: {str(e)}"

def get_file_extension(file_path):
    """
    获取文件扩展名(小写，不带点)
    :param file_path: 文件路径
    :return: 文件扩展名
    """
    return os.path.splitext(file_path)[1][1:].lower()

def is_supported_format(ext):
    """
    检查是否是支持的图片格式
    :param ext: 文件扩展名
    :return: bool
    """
    supported = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp']
    return ext.lower() in supported